home *** CD-ROM | disk | FTP | other *** search
- FFTR2BF
- Name: FFTR2BF.ASM
- Type: Assembler program
- Version: 1.0
- Date Entered: February 20, 1989
- Last Change: June 13, 1988
-
- Description: Fast Fourier Transform with Block Floating Point
-
- This program calculates the Radix-2, Decimation-in-Time Fast Fourier Transform
- using Block Floating Point.
-
- This algorithm operates as follows:
- 1. The algorithm steps through Radix-2, Decimation-in-Time butterflies as
- the FFTR2AA routine. Within the butterflies, the limit bit (L) is checked.
- 2. If L is set (limiting has occurred), the routine switches to a
- subroutine.
- 3. The subroutine recalculates the butterfly outputs for the
- complete pass, and scales down the butterfly outputs. A
- "block exponent" keeps track of the number of times the
- results have been scaled.
-
- The algorithm results in a much larger dynamic range and better
- precision for the FFT results. Because of the extra instructions within
- the butterflies, and the subroutine handling conditional scaling, it
- executes slower than other FFT routines.
-
- The calling sequence is FFTR2BF points,passes,data,twiddle,temp where:
- - points is the number of points in the FFT
- - passes is the number of passes in the FFT (log2(points))
- - data is the starting location of the input data
- - twiddle is the starting location of the twiddle factor table
- - starting location of scratch memory (four consecutive locations). On output,
- x:(temp)+2 contains the common exponent (number of bits scaled).
- x:(temp)+3 shows (in base 4) the number of bits scaled per stage
- ^Z